package com.future.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.future.domain.Follow;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface FollowMapper extends BaseMapper<Follow> {
    /**
     * 检查用户是否已关注另一个用户
     * @param userId 关注者ID
     * @param followedUserId 被关注者ID
     * @return 1表示已关注，0表示未关注
     */
    Integer checkFollow(@Param("userId") Long userId, @Param("followedUserId") Long followedUserId);

    /**
     * 获取用户的关注列表
     * @param userId 关注者ID
     * @return 关注的用户ID列表
     */
    List<Long> getFollowingList(Page<Long> page, @Param("userId") Long userId);

    /**
     * 获取用户的粉丝列表
     * @param userId 被关注者ID
     * @return 粉丝ID列表
     */
    List<Long> getFollowerList(Page<Long>  page,@Param("userId") Long userId);

    /**
     * 获取用户的关注数量
     * @param userId 关注者ID
     * @return 关注数量
     */
    Long getFollowingCount(@Param("userId") Long userId);

    /**
     * 获取用户的粉丝数量
     * @param userId 被关注者ID
     * @return 粉丝数量
     */
    Long getFollowerCount(@Param("userId") Long userId);
}